namespace FineCollection.Intf
{
    
    /// <summary>
    /// A set (read only).
    /// This collection is guaranted that all items will be different.
    /// </summary>
    /// <typeparam name="T">type of an item.</typeparam>
    public interface RSet<T> : RCollection<T>
    {

        /// <summary>
        /// Checks whether this collection contains the specified item.
        /// </summary>
        /// <para>
        /// Complexity of this function is <b>O(log(n))</b> or better.
        /// </para>
        /// <param name="item">the item to check.</param>
        /// <returns>true - the specified item is in the collection.</returns>
        bool Contains(T item);

    }
    
}
